'use strict';
const db = uniCloud.database();

exports.main = async (event, context) => {
  console.log('=== debugNotificationMessages 云函数开始 ===');
  console.log('输入参数:', event);
  
  const { userId } = event;
  
  try {
    // 1. 检查 notification-messages 表总数
    const totalCount = await db.collection('notification-messages').count();
    console.log('notification-messages 表总数:', totalCount.total);
    
    // 2. 获取所有数据（不过滤用户）
    const allData = await db.collection('notification-messages')
      .orderBy('create_time', 'desc')
      .limit(10)
      .get();
    
    console.log('所有通知消息（前10条）:', allData.data);
    
    // 3. 如果提供了userId，检查该用户的数据
    let userData = null;
    if (userId) {
      userData = await db.collection('notification-messages')
        .where({
          user_id: userId
        })
        .orderBy('create_time', 'desc')
        .get();
      
      console.log(`用户 ${userId} 的通知消息:`, userData.data);
    }
    
    // 4. 按类型分组统计
    const typeStats = {};
    const categoryStats = {};
    
    allData.data.forEach(item => {
      // 统计类型
      if (item.type) {
        typeStats[item.type] = (typeStats[item.type] || 0) + 1;
      }
      
      // 统计分类
      if (item.category) {
        categoryStats[item.category] = (categoryStats[item.category] || 0) + 1;
      }
    });
    
    console.log('类型统计:', typeStats);
    console.log('分类统计:', categoryStats);
    
    // 5. 检查系统相关数据
    const systemData = await db.collection('notification-messages')
      .where({
        category: 'system'
      })
      .get();
    
    console.log('系统分类的通知消息:', systemData.data);
    
    // 6. 检查状态为active的数据
    const activeData = await db.collection('notification-messages')
      .where({
        status: 'active'
      })
      .get();
    
    console.log('状态为active的通知消息数量:', activeData.data.length);
    
    return {
      success: true,
      message: '调试完成',
      data: {
        totalCount: totalCount.total,
        allData: allData.data,
        userData: userData ? userData.data : null,
        typeStats,
        categoryStats,
        systemData: systemData.data,
        activeCount: activeData.data.length
      }
    };
    
  } catch (error) {
    console.error('调试通知消息失败:', error);
    return {
      success: false,
      message: '调试失败: ' + error.message,
      error: error.stack
    };
  }
};
